
package com.dsiguero.tfg.percentdroid;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainMenuItemView extends RelativeLayout {

    private ImageView itemImage = null;

    private TextView itemText = null;

    public MainMenuItemView(Context context) {
        this(context, null);
    }

    public MainMenuItemView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public MainMenuItemView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

        /* Se obtienen en un array los valores de los elementos definidos en
         * attrs.xml */
        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.mainMenu_item, 0, 0);

        // Se parsean segun su tipo (definido tambien en attrs.xml)
        String itemT = a.getString(R.styleable.mainMenu_item_item_text);
        Drawable itemSrc = a.getDrawable(R.styleable.mainMenu_item_item_img);

        // Se deja el array listo para posterior uso
        a.recycle();

        /* obtencion del layout inflater y posterior inflate del layout definido
         * en main_menu_item.xml */
        LayoutInflater inflater = (LayoutInflater)context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.main_menu_item, this, true);

        /* Se obtienen los elementos de esta vista (excepto el color de fondo),
         * segun su orden al declararlos en el archivo xml y a continuación se
         * les asigna el valor que se ha obtenido anteriormente del mismo
         * archivo xml */

        // Cambia de font el TextView
        Typeface tf = Typeface.createFromAsset(context.getAssets(),
                "fonts/gloria_hallelujah_reg.ttf");

        this.itemText = (TextView)getChildAt(1);
        itemText.setText(itemT);

        itemText.setTypeface(tf);

        this.itemImage = (ImageView)getChildAt(0);
        itemImage.setImageDrawable(itemSrc);

        this.setBackground(getResources().getDrawable(R.drawable.main_menu_item_state));

    }

    public ImageView getItemImage() {
        return itemImage;
    }

    public TextView getItemText() {
        return itemText;
    }

}
